<?php
/**
 * 商品中心逻辑处理模块
 * UserModel:LLW
 * Date:2020-03-04
 */

namespace app\caidongweb\model;
use think\Db;

class GoodsModel extends BaseModel
{
    protected $table = 'cd_goods';

    public function getList()
    {
        $where = [];
        input('is_on_sale') ? $where['go_sale'] = input('is_on_sale') :false;
        input('intro') ? $where[input('intro')] =array('eq',1) :false;
        input('keyword') ? $where[input('xcinput')] = array('LIKE',"%".input('keyword')."%") : false;
        $list = $this->join('cd_category c','cd_goods.go_caid = c.ca_id')->where($where)->paginate(10,false,['query'=>request()->param()]);
        return $list;
    }

    /**
     * 商品添加逻辑
     * @return array
     */
    public function getAdd()
    {
        $date = input('post.');
        $data['go_imgs'] = $date['imgs'];
        if (empty(input('go_name'))){
            return array('code'=>-1,'msg'=>'商品名称不能为空');
        }
        $data['go_name'] = $date['go_name'];
        $data['go_caid'] = $date['go_caid'];
        if($date['parent'] == 1){
            if (empty(input('go_score')) && empty(input('go_price'))){
                return array('code'=>-1,'msg'=>'积分与现金不能都为空');
            }
        }elseif ($date['parent'] == 2){
            if (empty(input('go_score'))){
                return array('code'=>-1,'msg'=>'积分不能为空');
            }
        }
        $data['go_score'] = $date['go_score'];
        $data['go_price'] = $date['go_price'];
        input('go_sale') ? $data['go_sale'] = $date['go_sale'] : $data['go_sale'] = 0;
        input('go_recom') ? $data['go_recom'] = $date['go_recom'] : $data['go_recom'] = 0;
        input('go_new') ? $data['go_new'] = $date['go_new'] : $data['go_new'] = 0;
        input('go_hot') ? $data['go_hot'] = $date['go_hot'] : $data['go_hot'] = 0;
        input('go_free') ? $data['go_free'] = $date['go_free'] : $data['go_free'] = 0;
        input('go_stock') ? $data['go_stock'] = $date['go_stock'] : $data['go_stock'] = 0;
        input('go_sum') ? $data['go_sum'] = $date['go_sum'] : $data['go_sum'] = 0;
        if (empty(input('go_weight'))){
            return array('code'=>-1,'msg'=>'产品重量不能为空');
        }
        $data['go_weight'] = $date['go_weight'];
        if (empty(input('go_key'))){
            return array('code'=>-1,'msg'=>'商品关键字不能为空');
        }
        $data['go_key'] = $date['go_key'];
        if (empty(input('go_con'))){
            return array('code'=>-1,'msg'=>'商品简介不能为空');
        }
        $data['go_con'] = $date['go_con'];
        if (empty(input('headImg'))){
            return array('code'=>-1,'msg'=>'图片不能为空');
        }
        $data['go_thumb'] = $date['headImg'];
        if (empty(input('go_body'))){
            return array('code'=>-1,'msg'=>'商品详情不能为空');
        }
        $data['go_body'] = $date['go_body'];
        $data['go_sn'] = $this->goodsNumber();
        $data['go_stime'] = time();
        $res = $this->insert($data);
        if($res){
            return array('code'=>1,'msg'=>'成功');
        }else{
            return array('code'=>-1,'msg'=>'失败');
        }
    }

    /**
     * 商品编辑逻辑
     * @return array
     */
    public function getEdit()
    {
        $date = input('post.');
        if (empty(input('go_name'))){
            return array('code'=>-1,'msg'=>'商品名称不能为空');
        }
        $data['go_name'] = $date['go_name'];
        $data['go_caid'] = $date['go_caid'];
        if($date['parent'] == 1){
            if (empty(input('go_score')) && empty(input('go_price'))){
                return array('code'=>-1,'msg'=>'积分与现金不能都为空');
            }
        }elseif ($date['parent'] == 2){
            if (empty(input('go_score'))){
                return array('code'=>-1,'msg'=>'积分不能为空');
            }
        }
        if(!empty($date['imgs'])){
            $data['go_imgs'] = $date['imgs'];
        }
        $data['go_score'] = $date['go_score'];
        $data['go_price'] = $date['go_price'];
        input('go_sale') ? $data['go_sale'] = $date['go_sale'] : $data['go_sale'] = 0;
        input('go_recom') ? $data['go_recom'] = $date['go_recom'] : $data['go_recom'] = 0;
        input('go_new') ? $data['go_new'] = $date['go_new'] : $data['go_new'] = 0;
        input('go_hot') ? $data['go_hot'] = $date['go_hot'] : $data['go_hot'] = 0;
        input('go_free') ? $data['go_free'] = $date['go_free'] : $data['go_free'] = 0;
        input('go_stock') ? $data['go_stock'] = $date['go_stock'] : $data['go_stock'] = 0;
        input('go_sum') ? $data['go_sum'] = $date['go_sum'] : $data['go_sum'] = 0;
        if (empty(input('go_weight'))){
            return array('code'=>-1,'msg'=>'产品重量不能为空');
        }
        $data['go_weight'] = $date['go_weight'];
        if (empty(input('go_key'))){
            return array('code'=>-1,'msg'=>'商品关键字不能为空');
        }
        $data['go_key'] = $date['go_key'];
        if (empty(input('go_con'))){
            return array('code'=>-1,'msg'=>'商品简介不能为空');
        }
        $data['go_con'] = $date['go_con'];
        if (empty(input('headImg'))){
            return array('code'=>-1,'msg'=>'图片不能为空');
        }
        $data['go_thumb'] = $date['headImg'];
        if (empty(input('go_body'))){
            return array('code'=>-1,'msg'=>'商品详情不能为空');
        }
        $data['go_body'] = $date['go_body'];
        $res = $this->where('go_id',$date['go_id'])->update($data);
        if($res){
            return array('code'=>1,'msg'=>'成功');
        }else{
            return array('code'=>-1,'msg'=>'失败');
        }
    }

    /**
     * 生成随机商品编号
     * @return int
     */
    function goodsNumber()
    {
        $code = rand(1000000,9999999);
        $find = Db::name('goods')->where('go_sn',$code)->field('go_id')->find();
        if(empty($find)){
            return $code;
        }
        $this->goodsNumber();
    }

    /**
     * 永久删除商品
     * @return array
     */
    public function getDel()
    {
        $id = input('id');
        $list = $this->where('go_id',$id)->find();
        if(empty($list)){
            return array('code'=>-1,'msg'=>'商品信息未找到');
        }
        $del = $this->where('go_id',$id)->delete();
        if($del){
            return array('code'=>1,'msg'=>'删除成功');
        }
        return array('code'=>-1,'msg'=>'哎呀，网络好像在开小差哦！请先刷新一下');
    }
}